home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / Genie / Projects / Pedestal / Source / Sources / Views / PedViewMultipane.cc < prev    next >
Encoding:
C/C++ Source or Header  |  2000-06-24  |  1.8 KB  |  135 lines

  1. /*    ===================
  2.  *    PedViewMultipane.cc
  3.  *    ===================
  4.  */
  5.  
  6. #include "PedestalDebugging.h"
  7.  
  8. #include "PedViewMultipane.hh"
  9. #include "PedPaneSubView.hh"
  10.  
  11.  
  12. static
  13. void
  14. OpenPane(PedPane *inPane, void *inPtr)
  15. {
  16.     inPane->Open();
  17. }
  18.  
  19. static
  20. void
  21. ClosePane(PedPane *inPane, void *inPtr)
  22. {
  23.     inPane->Close();
  24. }
  25.  
  26. static
  27. void
  28. ResizePane(PedPane *inPane, void *inPtr)
  29. {
  30.     Point *delta = (Point *)inPtr;
  31.     inPane->Resize(delta->h, delta->v);
  32. }
  33.  
  34. static
  35. void
  36. DrawPane(PedPane *inPane, void *inPtr)
  37. {
  38.     inPane->DrawContent();
  39. }
  40.  
  41.  
  42. PedViewMultipane::PedViewMultipane(PedPaneSubView &inSuperPane)
  43. : PedViewSub(inSuperPane)
  44. {
  45. }
  46.  
  47. PedViewMultipane::~PedViewMultipane()
  48. {
  49. }
  50.  
  51. void
  52. PedViewMultipane::AddPane(PedPane *inPane)
  53. {
  54.     if (!inPane) return;
  55.     
  56.     inPane->retain();
  57.     mPanes.Append(inPane);
  58. }
  59.  
  60. void
  61. PedViewMultipane::RemovePane(PedPane *inPane)
  62. {
  63.     if (!inPane) return;
  64.     
  65.     mPanes.Remove(inPane);
  66.     inPane->release();  // need to check if it was there to be removed or not
  67. }
  68.  
  69. void
  70. PedViewMultipane::Focus()
  71. {
  72.     //mPort.Set();
  73. }
  74.  
  75. void
  76. PedViewMultipane::Open()
  77. {
  78.     mPanes.ForEach(&OpenPane, NULL);
  79. }
  80.  
  81. void
  82. PedViewMultipane::Close()
  83. {
  84.     mPanes.ForEach(&ClosePane, NULL);
  85. }
  86.  
  87. void
  88. PedViewMultipane::Activate()
  89. {
  90. }
  91.  
  92. void
  93. PedViewMultipane::Deactivate()
  94. {
  95. }
  96.  
  97. void
  98. PedViewMultipane::Resize(short inWidth, short inHeight)
  99. {
  100.     PedView::Resize(inWidth, inHeight);
  101.     Point delta;
  102.     delta.h = inWidth;
  103.     delta.v = inHeight;
  104.     mPanes.ForEach(&ResizePane, &delta);
  105. }
  106.  
  107.  
  108. void
  109. PedViewMultipane::DrawContent()
  110. {
  111.     while (0) {
  112.         
  113.     }
  114.     // set up drawing environment
  115.     // for each of mPanes, Draw()
  116.     // restore drawing environment
  117.     mPanes.ForEach(&DrawPane, NULL);
  118. }
  119.  
  120. void
  121. PedViewMultipane::DispatchNullEvent(EventRecord &inEvent)
  122. {
  123.     
  124. }
  125.  
  126. void
  127. PedViewMultipane::DispatchClickEvent(EventRecord &inEvent)
  128. {
  129. }
  130.  
  131. void
  132. PedViewMultipane::DispatchKey(EventRecord &inEvent)
  133. {
  134. }
  135.